package com.wksc.framework.impexp.constants;


import com.wksc.framework.impexp.util.ClassFactory;

/**
 * <p> Title(文件名): TaskType.java </p>
 * <p> Description(描述): 用于描述导入导出任务类型的枚举类 </p>
 * <p> Copyright(版权): Copyright (c) 2011 </p>
 * <p> Company(公司): 成都四方信息技术有限公司 </p>
 * <p> CreateTime(生成日期)：2011-10-26下午03:57:35 </p>
 * @author wanglei
 * @version impExp
 */
public enum TaskType {
	EXP_TASK(ClassFactory.getI18n().getExportInfo()) {
		@Override
		public int toTypeInt() {
			return 1; // 为了兼容之前版本
		}

		@Override
		public byte toTypeByte() {
			return ClassFactory.getOutInterface().getExportTask();
		}
	},
	IMP_ADD_TASK(ClassFactory.getI18n().getImportAddStr()) {
		@Override
		public int toTypeInt() {
			return 3; // 为了兼容之前版本
		}

		@Override
		public byte toTypeByte() {
			return ClassFactory.getOutInterface().getImportAddTask();
		}
	},
	IMP_DEL_TASK(ClassFactory.getI18n().getImportAddStr()) {
		@Override
		public int toTypeInt() {
			return 3; // 为了兼容之前版本
		}

		@Override
		public byte toTypeByte() {
			return ClassFactory.getOutInterface().getImportDelTask();
		}
	};
	
	private String taskStr;
	
	/**
	 * 方法描述：入库和页面解析时使用
	 *
	 * @creator wanglei
	 * @return
	 */
	public abstract int toTypeInt();
	
	/**
	 * 方法描述：记录日志时使用
	 *
	 * @creator wanglei
	 * @return
	 */
	public abstract byte toTypeByte();
	
	/**
	 * TaskType构造函数
	 * @param taskStr 表示此类型的说明信息
	 */
	 TaskType(String taskStr){
		this.taskStr = taskStr;
	}

	/**
	 * 方法描述：TaskType getter
	 *
	 * @creator wanglei
	 * @return
	 */
	public String getTaskStr() {
		return taskStr;
	}

	/**
	 * 方法描述：TaskType setter
	 *
	 * @creator wanglei
	 * @return
	 */
	public void setTaskStr(String taskStr) {
		this.taskStr = taskStr;
	}

	@Override
	public String toString() {
		return this.taskStr;
	}
}
